home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 60 / 60.xpi / chrome / webdeveloper.jar / content / webdeveloper / options / dialogs / tool.js < prev    next >
Encoding:
JavaScript  |  2009-06-30  |  6.8 KB  |  168 lines

  1. // Open a dialog to choose an application
  2. function webdeveloper_chooseApplication()
  3. {
  4.     var filePicker = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
  5.  
  6.     filePicker.init(window, document.getElementById("webdeveloper-string-bundle").getString("webdeveloper_chooseApplication"), filePicker.modeOpen);
  7.  
  8.     // If the user selected an application
  9.     if(filePicker.show() == filePicker.returnOK)
  10.     {
  11.         var applicationPath = filePicker.file.path;
  12.         var executable      = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
  13.  
  14.         executable.initWithPath(applicationPath);
  15.  
  16.         // If the executable exists, is a file and is executable
  17.         if(executable.exists() && executable.isFile() && executable.isExecutable())
  18.         {
  19.             document.getElementById("webdeveloper.tool.path").value = applicationPath;
  20.         }
  21.         else
  22.         {
  23.             webdeveloper_error(document.getElementById("webdeveloper-string-bundle").getFormattedString("webdeveloper_invalidApplication", [applicationPath]));
  24.         }
  25.     }
  26. }
  27.  
  28. // Clears the tool
  29. function webdeveloper_clearTool()
  30. {
  31.     window.opener.webdeveloper_toolDescription = null;
  32.     window.opener.webdeveloper_toolKey         = null;
  33.     window.opener.webdeveloper_toolPath        = null;
  34.     window.opener.webdeveloper_toolURL         = null;
  35. }
  36.  
  37. // Initializes the tool dialog box
  38. function webdeveloper_initializeTool()
  39. {
  40.     var modifiers    = null;
  41.     var stringBundle = document.getElementById("webdeveloper-string-bundle");
  42.  
  43.     // If running on a Mac
  44.     if(webdeveloper_isMac())
  45.     {
  46.         modifiers = stringBundle.getString("webdeveloper_keyboardShortcutModifiersMac");
  47.     }
  48.     else
  49.     {
  50.         modifiers = stringBundle.getString("webdeveloper_keyboardShortcutModifiers");
  51.     }
  52.  
  53.     document.getElementById("webdeveloper-keyboard-shortcut-modifiers").value = modifiers;
  54.  
  55.     // If the first argument equals add
  56.     if(window.arguments[0] == "add")
  57.     {
  58.         document.title = stringBundle.getString("webdeveloper_addTool");
  59.     }
  60.     else
  61.     {
  62.         document.title = stringBundle.getString("webdeveloper_editTool");
  63.  
  64.         document.getElementById("webdeveloper.tool.description").value = window.arguments[1];
  65.         document.getElementById("webdeveloper.tool.key").value         = window.arguments[2];
  66.  
  67.         // If the last argument equals the application tool type
  68.         if(window.arguments[4] == stringBundle.getString("webdeveloper_application"))
  69.         {
  70.             document.getElementById("webdeveloper.tool.path").value = window.arguments[3];
  71.         }
  72.         else if(window.arguments[4] == stringBundle.getString("webdeveloper_bookmarklet"))
  73.         {
  74.             var bookmarkletRadio = document.getElementById("webdeveloper-bookmarklet-radio");
  75.  
  76.             document.getElementById("webdeveloper.tool.bookmarklet").value = window.arguments[3];
  77.             bookmarkletRadio.radioGroup.selectedItem                       = bookmarkletRadio;
  78.  
  79.             document.getElementById("webdeveloper-application-options").setAttribute("hidden", true);
  80.             document.getElementById("webdeveloper-bookmarklet-options").setAttribute("hidden", false);
  81.         }
  82.         else
  83.         {
  84.             var urlRadio = document.getElementById("webdeveloper-url-radio");
  85.  
  86.             document.getElementById("webdeveloper.tool.url").value = window.arguments[3];
  87.             urlRadio.radioGroup.selectedItem                       = urlRadio;
  88.  
  89.             document.getElementById("webdeveloper-application-options").setAttribute("hidden", true);
  90.             document.getElementById("webdeveloper-url-options").setAttribute("hidden", false);
  91.         }
  92.     }
  93. }
  94.  
  95. // Saves the tool
  96. function webdeveloper_saveTool()
  97. {
  98.     var bookmarklet  = document.getElementById("webdeveloper.tool.bookmarklet").value.trim();
  99.     var description  = document.getElementById("webdeveloper.tool.description").value.trim();
  100.     var errors       = "";
  101.     var key          = document.getElementById("webdeveloper.tool.key").value.trim();
  102.     var path         = document.getElementById("webdeveloper.tool.path").value.trim();
  103.     var stringBundle = document.getElementById("webdeveloper-string-bundle");
  104.     var url          = document.getElementById("webdeveloper.tool.url").value.trim();
  105.  
  106.     // If the description is empty
  107.     if(!description)
  108.     {
  109.         errors += stringBundle.getString("webdeveloper_emptyDescription") + "\n";
  110.     }
  111.  
  112.     // If the application type is selected and the path is empty
  113.     if(document.getElementById("webdeveloper-application-radio").selected && !path)
  114.     {
  115.         errors += stringBundle.getString("webdeveloper_applicationPath") + "\n";
  116.     }
  117.     /*else if(document.getElementById("webdeveloper-bookmarklet-radio").selected && !bookmarklet)
  118.     {
  119.         errors += stringBundle.getString("webdeveloper_emptyBookmarklet") + "\n";
  120.     }*/
  121.     else if(document.getElementById("webdeveloper-url-radio").selected && !url)
  122.     {
  123.         errors += stringBundle.getString("webdeveloper_emptyURL") + "\n";
  124.     }
  125.  
  126.     // If there are errors
  127.     if(errors)
  128.     {
  129.         webdeveloper_error(errors.trim());
  130.  
  131.         return false;
  132.     }
  133.     else
  134.     {
  135.         window.opener.webdeveloper_toolDescription = description;
  136.         window.opener.webdeveloper_toolKey         = key;
  137.  
  138.         // If the application type is selected
  139.         if(document.getElementById("webdeveloper-application-radio").selected)
  140.         {
  141.             window.opener.webdeveloper_toolBookmarklet = null;
  142.             window.opener.webdeveloper_toolPath        = path;
  143.             window.opener.webdeveloper_toolURL         = null;
  144.         }
  145.         /*else if(document.getElementById("webdeveloper-bookmarklet-radio").selected)
  146.         {
  147.             window.opener.webdeveloper_toolBookmarklet = bookmarklet;
  148.             window.opener.webdeveloper_toolPath        = null;
  149.             window.opener.webdeveloper_toolURL         = null;
  150.         }*/
  151.         else
  152.         {
  153.             window.opener.webdeveloper_toolBookmarklet = null;
  154.             window.opener.webdeveloper_toolPath        = null;
  155.             window.opener.webdeveloper_toolURL         = url;
  156.         }
  157.  
  158.         return true;
  159.     }
  160. }
  161.  
  162. // Toggles the tool type
  163. function webdeveloper_toggleToolType()
  164. {
  165.     document.getElementById("webdeveloper-application-options").setAttribute("hidden", !document.getElementById("webdeveloper-application-radio").selected);
  166.     /*document.getElementById("webdeveloper-bookmarklet-options").setAttribute("hidden", !document.getElementById("webdeveloper-bookmarklet-radio").selected);*/
  167.     document.getElementById("webdeveloper-url-options").setAttribute("hidden", !document.getElementById("webdeveloper-url-radio").selected);
  168. }